آموزش بوت‌کمپ جامع بک‌اند .NET 8 - معماری Modulith، VSA، DDD، CQRS و Outbox [ویدئویی] - آخرین آپدیت

دانلود .NET 8 Backend Bootcamp - Modulith, VSA, DDD, CQRS and Outbox [Video]

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: این بوت‌کمپ به بررسی توسعه مدرن بک‌اند با .NET 8 می‌پردازد و با تحلیل چالش‌های مونو لیت‌های سنتی، شما را در مسیر پیاده‌سازی معماری‌های مونو لیت ماژولار (Modular Monolith) هدایت می‌کند. بیاموزید که چگونه پروژه‌ها را ساختاردهی کنید، وابستگی‌ها را مدیریت نمایید و داده‌ها را با استفاده از ابزارهای پیشرفته‌ای مانند PostgreSQL و EF Core به طور مؤثر ایزوله کنید. شما مفاهیم طراحی دامین-محور (DDD)، CQRS و معماری برش عمودی (VSA) را برای ساخت ماژول‌های قابل نگهداری مانند کاتالوگ، سبد خرید و سفارشات بررسی خواهید کرد. این دوره همچنین ارتباطات ناهمگام (Async) با RabbitMQ را پوشش می‌دهد تا گردش کارهای رویداد-محور مطمئن با استفاده از الگوی Outbox تضمین شود. توسعه عملی در این دوره، دانش کاربردی در مورد طراحی سیستم‌های واقعی را تضمین می‌کند. در زمینه امنیت، بر یکپارچه‌سازی Keycloak برای مدیریت هویت متمرکز تأکید شده و برای افزایش عملکرد از کشینگ Redis استفاده می‌شود. در نهایت، یاد می‌گیرید که چگونه برنامه‌ها را با استفاده از الگوی Strangler Fig از یک مونو لیت ماژولار به میکروسرویس‌ها منتقل کنید. در پایان، شما آماده خواهید بود تا سیستم‌های بک‌اند مقیاس‌پذیر را با .NET 8 طراحی، توسعه و مستقر کنید. - طراحی معماری‌های مقیاس‌پذیر Modular Monolith - پیاده‌سازی مؤثر DDD، CQRS و VSA - ساخت APIهای امن با Keycloak و OpenID - بهینه‌سازی جریان داده‌ها با EF Core و PostgreSQL - استفاده از RabbitMQ برای ارتباطات ناهمگام مطمئن - انتقال بدون درز مونو لیت‌ها به میکروسرویس‌ها این دوره برای توسعه‌دهندگان بک‌اند و معماران نرم‌افزاری طراحی شده است که به دنبال ارتقای مهارت‌های خود در توسعه مدرن .NET 8 هستند. این دوره برای متخصصانی که در C#، .NET و مفاهیم پایه پایگاه داده تجربه دارند ایده‌آل است و دانش پیشرفته‌ای از معماری‌های مقیاس‌پذیر ارائه می‌دهد. چه هدف شما بهینه‌سازی سیستم‌های موجود باشد و چه انتقال به میکروسرویس‌ها، این دوره ابزارها و بینش‌های لازم برای طراحی برنامه‌های بک‌اند مستحکم و قابل نگهداری را فراهم می‌کند.

سرفصل ها و درس ها

مقدمه Introduction

  • مقدمه Introduction

  • پیش‌نیازها، سورس کد و اسلایدهای دوره Prerequisites, Source Code and Course Slides

  • اجرای برنامه نهایی Run the Final Application

  • ساختار کد پروژه Project Code Structure

  • معماری‌ها، الگوها، کتابخانه‌ها و بهترین روش‌های مونو لیت ماژولار Modular Monoliths Architectures, Patterns, Libraries and Best Practices

  • نحوه دنبال کردن دوره (جریان دوره و روش یادگیری) How to Follow the Course (The Course Flow and Way of Learning)

معماری مونو لیتیک: مشکل مونو لیت‌های سنتی چیست؟ Monolithic Architecture - What's wrong with Traditional Monoliths?

  • مونو لیت‌های سنتی چیستند (معماری مونو لیتیک)؟ What is Traditional Monoliths (Monolithic Architecture)?

  • مشکل معماری مونو لیتیک سنتی چیست؟ What's wrong with Traditional Monolithic Architecture?

  • قفل تکنولوژی و چرخه ترس در معماری مونو لیتیک سنتی Technology Lock-In and Fear Cycle in Traditional Monolithic Architecture

  • مفهوم Big Ball of Mud (گلوله بزرگ گل و لای) Big Ball of Mud

معماری‌های میکروسرویس: چرا برای همه پروژه‌ها مناسب نیست؟ Microservices Architectures - Why it is not fit for all projects?

  • میکروسرویس‌ها و معماری میکروسرویس چیستند؟ What are Microservices and Microservices Architecture?

  • مشکلات معماری میکروسرویس چیست؟ What's wrong with Microservices Architecture?

  • آنتی-پترن میکروسرویس: مونو لیت توزیع شده Microservices Antipattern: The Distributed Monolith

  • مورد آمازون: بازطراحی از میکروسرویس‌های توزیع شده به مونو لیت Amazon Case: Rearchitecting from a Distributed Microservices to a Monolith

پل ارتباطی: معماری‌های مونو لیت ماژولار (درگاه بین مونو لیت و میکروسرویس) The Bridge: Modular Monolith Architectures - Gateway between Monolithic and MS

  • معماری مونو لیت ماژولار (Modulith) چیست؟ What is Modular Monolithic (Modulith) Architecture?

  • چرا مونو لیت ماژولار؟ مزایا نسبت به میکروسرویس‌ها Why Modular Monoliths? Advantages over Microservices?

  • رویکردهای «اول مونو لیت» از مارتین فاولر و سام نیومن Monolith First Approaches from Martin Fowler and Sam Newman

  • نقطه شروع برای میکروسرویس‌ها: انتقال تدریجی با بازسازی افزایشی Starting Point for Microservices: Gradually Transition with Incremental Refactor

  • معماری مونو لیت ماژولار Shopify Shopify Modular Monolithic Architecture

  • تجزیه ماژول‌های EShop: ماژول‌های کاتالوگ، سبد خرید، هویت و سفارشات Decomposition of EShop Modules: Catalog, Basket, Identity, and Ordering Modules

ایجاد ساختار پروژه مونو لیت ماژولار EShop Create EShop Modular Monolith Project Solution Structure

  • مقدمه: ایجاد ساختار پروژه مونو لیت ماژولار EShop Introduction - Create EShop Modular Monolith Project Solution Structure

  • ایجاد ریپازیتوری گیت‌هاب برای معماری مونو لیت ماژولار EShop Create GitHub Repository for EShop Modular Monolithic Architecture

  • ایجاد یک Solution خالی جدید: eshop modular monoliths Create New Blank Solution: eshop-modular-monoliths

  • ساختار پوشه‌بندی مونو لیت ماژولار: Bootstrapper، Modules، Shared Modular Monolith Folder Structure: Bootstrapper, Modules, Shared

  • ایجاد پروژه Bootstrapper Api Create Bootstrapper Api Project

  • پیکربندی پروژه وب خالی برای Bootstrapper Api مونو لیت ماژولار Configure Empty Web Project to Bootstrapper Api of Modular Monolith

  • ایجاد پوشه‌های ماژول‌ها بر اساس تحلیل Bounded Context در DDD Create Modules Folders according to DDD Bounded Context Analysis

  • معماری خارجی در مقابل معماری داخلی در مونو لیت‌های ماژولار External vs Internal Architecture of Modular Monoliths Architecture

  • معماری برش عمودی (Vertical Slice Architecture) Vertical Slice Architecture

  • معماری پاک (Clean Architecture) Clean Architecture

  • مقایسه معماری برش عمودی در مقابل معماری پاک Vertical Slice versus Clean Architecture

  • ایجاد پروژه‌های ماژول به عنوان Class Library Create Module Projects as a Class Library

  • الگوی Shared Kernel در DDD Shared Kernel Pattern in DDD

  • ایجاد پروژه Shared Kernel Class Library برای تمام ماژول‌ها Create Shared Kernel Class Library Project for All Modules

  • افزودن وابستگی‌های پروژه Shared به پروژه‌های ماژول‌ها Shared Project Dependencies to Modules Projects

  • وابستگی‌های ماژول‌ها به پروژه Bootstrapper Asp.Net Api Module Dependencies to Bootstrapper Asp.Net Api Project

اتصال وابستگی‌ها بین ماژول‌ها (مدیریت DI ماژول‌ها) Wire-up Dependencies Between Modules (DI Management of Modules)

  • مقدمه: اتصال وابستگی‌ها بین ماژول‌ها (مدیریت DI ماژول‌ها) Introduction - Wire-up Dependencies Between Modules (DI Management of Modules)

  • مدیریت تزریق وابستگی Asp.net و فایل Program.cs Asp.net Dependency Injection Management and Program.cs

  • اتصال وابستگی‌ها بین ماژول‌ها Wiring up dependencies between modules

  • توسعه متد extension برای AddCatalogModule در CatalogModule.cs Develop AddCatalogModule extension method in CatalogModule.cs

  • ثبت وابستگی‌های کاتالوگ در Program.cs Registering Catalog Dependencies into Program.cs

  • توسعه متدهای extension برای AddBasketModule و AddOrderingModule Develop AddBasketModule, AddOrderingModule extension methods

  • ثبت وابستگی‌های سبد خرید و سفارشات در Program.cs Registering Basket and Ordering Dependencies into Program.cs

  • میان‌افزارهای (Middlewares) Asp.net و خط لوله درخواست‌های HTTP Asp.net Middlewares and HTTP Request Pipeline

  • پیکربندی خط لوله درخواست‌های HTTP برای ماژول‌ها در Program.cs Configure HTTP Request Pipelines for Modules in Program.cs

  • بررسی کلاس WebApplication، استفاده از Abstractions و نصب پکیج‌های مورد نیاز Examine WebApplication Class Use Abstractions and Install Required Packages

  • توسعه متد extension برای UseCatalogModule جهت پیکربندی درخواست HTTP ماژول Develop UseCatalogModule extension method for Module Configure the HTTP request

  • یکپارچه‌سازی UseCatalogModule در Program.cs Integrating UseCatalogModule in Program.cs

  • توسعه متدهای extension برای UseBasketModule و UseOrderingModule Develop UseBasketModule and UseOrderingModule extension method for Module Config

  • یکپارچه‌سازی متدهای UseBasketModule و UseOrderingModule در Program.cs Integrating UseBasketModule and UseOrderingModule extension method in Program.cs

  • افزودن GlobalUsings.cs به هر پروژه برای جلوگیری از تکرار دستورات using Add GlobalUsings.cs for Each Project to Avoid Redundant Using Statements

اولین ماژول: ماژول کاتالوگ با معماری برش عمودی و CQRS First Module: Catalog Module with Vertical Slice Architecture and CQRS

  • مقدمه: اولین ماژول - ماژول کاتالوگ با معماری برش عمودی Introduction - First Module: Catalog Module with Vertical Slice Architecture

  • تحلیل دامین ماژول کاتالوگ: مدل‌ها، Use Caseها، APIهای REST و دیتابیس‌ها Domain Analysis of Catalog Module: Models, UCs, Rest APIs, Databases

  • تحلیل فنی ماژول کاتالوگ: معماری‌ها، الگوها، کتابخانه‌ها و پوشه‌ها Technical Analysis of Catalog Module: Architectures, Patterns, Libraries, Folder

  • مسیر توسعه: Shared > Modules > API Way of Development: Shared -> Modules -> API

توسعه دامین مشترک برای انتزاع تاکتیکی DDD (Entity, Aggregate, Events) Develop Shared Domain for Tactical DDD Abstraction (Entity, Aggregate, Events)

  • مقدمه: توسعه دامین مشترک برای انتزاع تاکتیکی DDD Introduction - Develop Shared Domain for Tactical DDD Abstraction

  • طراحی دامین-محور (DDD) Domain Driven Design - DDD

  • DDD تاکتیکی: موجودیت‌ها (Entities)، اشیاء مقدار (Value Objects)، Aggregateها و Aggregate Roots Tactical Domain-Driven Design: Entities, Value Objects, Aggregates, A. Roots

  • توسعه انتزاع‌های DDD (Entity, Aggregate, DomainEvent) در کتابخانه Shared Develop DDD Abstractions (Entity, Aggregate, DomainEvent) in Shared Library

  • توسعه اینترفیس IDomainEvent در انتزاع تاکتیکی DDD با استفاده از MediatR Develop IDomainEvent interface in Tactical DDD Abstraction using MediatR

  • توسعه کلاس‌های Aggregate در انتزاع تاکتیکی DDD Develop Aggregate classes in Tactical DDD Abstraction

توسعه دامین کاتالوگ با مدل‌های موجودیت دامین محصول Develop Catalog Domain with Product Domain Entity Models

  • مقدمه: توسعه دامین کاتالوگ با مدل‌های موجودیت دامین محصول Introduction - Develop Catalog Domain with Product Domain Entity Models

  • توسعه مدل‌های موجودیت دامین محصول در مدل‌های دامین ماژول کاتالوگ Develop Product Domain Entity Models in Catalog Module Domain Models

  • مدل‌های دامین کم‌خون (Anemic) در مقابل مدل‌های دامین غنی (Rich) در DDD Anemic-domain vs Rich-domain Model Entities in DDD

  • توسعه مدل موجودیت دامین غنی DDD برای موجودیت محصول Develop DDD Rich-domain model Entity for Product Entity

  • رویدادهای دامین در DDD و تفاوت رویدادهای دامین با رویدادهای یکپارچه‌ساز (Integration Events) Domain Events in DDD and Domain vs Integration Events

  • توسعه رویدادهای دامین Product Created و Updated در ماژول کاتالوگ Develop Product Created and Updated Domain Event in Catalog Module

  • ایجاد رویدادهای دامین ProductCreated و ProductPriceChanged در ماژول کاتالوگ Raise ProductCreated and ProductPriceChanged Domain Event in Catalog Module

مدیریت داده‌های مونو لیت ماژولار: راه‌اندازی Postgres به عنوان دیتابیس اصلی Data Management of Modular Monolith: Setup Postgres as a Main Database

  • مقدمه: مدیریت داده‌های مونو لیت ماژولار - راه‌اندازی دیتابیس Postgres Introduction - Data Management of Modular Monolith: Setup Postgres DB

  • مدیریت داده‌ها در مونو لیت‌های ماژولار: ۴ استراتژی ایزوله‌سازی داده‌ها Data Management of Modular Monoliths: 4 Data Isolation Strategies

  • بهترین روش: جداسازی Schema دیتابیس برای ماژول‌ها در برنامه‌های مونو لیت ماژولار Best Practice: DB Schema separation of Modules in Modular Monoliths apps

  • استفاده از Multi-context EF DB Context برای جداسازی Schema جهت ایزوله‌سازی داده‌ها Multi-context EF DB Context object for DB Separate Schema for Data Isolation

  • سرویس‌های پشتیبان (Backing Services) برای معماری‌های Cloud Native Backing Services for Cloud-Native Architectures

  • استراتژی استقرار مونو لیت ماژولار EShop EShop Modular Monolith Deployment Strategy

  • راه‌اندازی دیتابیس PostgreSQL با استفاده از فایل Docker Compose برای محیط چند-کانتینری Setup PostgreSQL DB using Docker-compose file for Multi-container Docker env

  • افزودن ایمیج PostgreSQL به فایل Docker Compose Add PostgreSQL DB image into Docker-compose file for Multi-container Docker env

  • اجرای Docker Compose در ویژوال استودیو برای راه‌اندازی PostgreSQL در داکر Run Docker-Compose on Visual Studio to setup PostgreSQL DB on Docker

  • اتصال و بررسی دیتابیس PostgreSQL با استفاده از pgAdmin Connect and Browse PostgreSQL DB using pgAdmin

توسعه زیرساخت داده‌های مشترک و کاتالوگ با EF Core Code First Develop Shared and Catalog Data-Infrastructure with EF Core Code First

  • مقدمه: توسعه لایه زیرساخت داده‌های مشترک و کاتالوگ با EF Core Introduction - Develop Shared and Catalog Data-Infrastructure Layer with EF Core

  • ویژگی‌های EF Core 8، رویکرد Code First، میگریشن‌ها و اتصال به PostgreSQL EF Core 8 Features, Code First Approach, Migrations and PostgreSQL Connection

  • مراحل توسعه EF Core برای زیرساخت داده‌های مشترک و کاتالوگ Steps of EF Core Developments for Shared and Catalog Data-Infrastructure

  • نصب پکیج‌های NuGet مربوط به EF Core در کتابخانه Shared Install EF Core NuGet Packages in Shared Library

  • توسعه شیء DbContext در EF Core برای ذخیره موجودیت‌ها در ماژول کاتالوگ Develop EF Core DbContext Object for Storing Entities in Catalog Module

  • نگاشت اشیاء DDD به موجودیت‌های EF و توسعه پیکربندی‌های موجودیت EF Core Mapping DDD Objects to EF Entities - Develop EF Core Entity Configurations

  • رشته اتصال (Connection String) PostgreSQL در فایل appsettings.json EF Core PostgreSQL Connection String in appsettings.json file

  • ثبت DbContext در ابزار DependencyInjection برای PostgreSQL در Asp.Net Register EF Core DbContext in Asp.Net DependencyInjection Tool for PostgreSQL

  • ایجاد میگریشن‌های EF Core برای CatalogDbContext - بخش اول Create EF Core Migrations for CatalogDbContext - Part 1

  • ایجاد میگریشن‌های EF Core برای CatalogDbContext - بخش دوم Create EF Core Migrations for CatalogDbContext - Part 2

  • بررسی و اجرای Docker Compose در ویژوال استودیو برای راه‌اندازی PostgreSQL Review and Run Docker-Compose on Visual Studio to setup PostgreSQL DB on Docker

  • اعمال میگریشن‌های EF Core بر روی دیتابیس PostgreSQL با دستور Update Database Apply EF Core Migrations to PostgreSQL DB with Update-Database Command

  • میگریشن خودکار موجودیت‌های EF Core هنگام شروع برنامه Auto Migrate EF Core Entities to PostgreSQL DB when Application Startup

  • توسعه متد Extension عمومی UseMigration برای میگریشن و Seed دیتابیس Develop Generic UseMigration Extension Method for DB Migration and Seed

  • استفاده از متد UseMigration در کلاس‌های DependencyInjection ماژول‌ها Using UseMigration Extension Method on Module DependencyInjection Classes

  • تست میگریشن‌های خودکار با متد UseMigration در WebApplication Test Auto-Migrations with UseMigration Extension Method on WebApplication

  • تزریق داده‌های اولیه (Seed) محصولات EShopDb هنگام شروع برنامه بعد از UseMigration Seed EShopDb Product Data When Application Startup Just After UseMigration

  • اجرای ماژول کاتالوگ برای میگریشن و Seed دیتابیس با متد UseMigration Run Catalog Module to Migrate and Seed EShopDb with UseMigration Method

  • اینترسپتورهای EF Core: استفاده از SaveChangesInterceptor برای حسابرسی (Auditing) موجودیت‌ها EF Core Interceptors: SaveChangesInterceptor for Auditing Entities

  • توسعه SaveChangesInterceptor برای حسابرسی موجودیت‌های سفارشات Develop SaveChangesInterceptor to Auditing Entities for Order Entities

  • اجرا و تست ماژول کاتالوگ برای حسابرسی با EF Save Changes Interceptor Run & Test Catalog Module for Audit with EF Save Changes Interceptor

  • ارسال رویدادهای دامین با EF Core SaveChangesInterceptor Dispatch Domain Events with EF Core SaveChangesInterceptor

  • توسعه DispatchDomainEventsInterceptor برای فعال‌سازی هندلرهای رویداد دامین Develop DispatchDomainEventsInterceptor to Trigger Domain Event Handlers

  • اجرا و تست ماژول کاتالوگ برای ارسال رویدادهای دامین با EF SaveChanges Interceptor Run & Test Catalog Module for Dispatch DomainEvents with EF SaveChanges Interceptor

توسعه Use Caseهای برنامه با CQRS و MediatR Application Use Case Development with CQRS and MediatR

  • مقدمه: توسعه Use Caseهای برنامه با CQRS و MediatR Introduction - Application Use Case Development with CQRS and MediatR

  • الگوی CQRS (جداسازی مسئولیت فرمان و پرس‌وجو) CQRS (Command Query Responsibility Segregation) Pattern

  • پیاده‌سازی منطقی و فیزیکی الگوی CQRS Logical and Physical Implementation of CQRS Pattern

  • الگوی طراحی CQRS با کتابخانه MediatR (پیاده‌سازی منطقی CQRS) CQRS Design Pattern With MediatR Library (Logical CQRS Implementation)

  • توسعه کلاس Feature Handler با CQRS و MediatR Develop Feature Handler Class with CQRS and MediatR

  • ایجاد انتزاع روی MediatR برای CQRS - جداسازی Command و Query Create Abstraction on MediatR for CQRS - Command and Query Separation

  • ایجاد انتزاع روی MediatR برای CQRS - جداسازی Command و Query - بخش دوم Create Abstraction on MediatR for CQRS - Command and Query Separation - Part 2

توسعه Use Caseهای برنامه کاتالوگ با CQRS و MediatR Catalog Application Use Case Development with CQRS and MediatR

  • مقدمه: توسعه Use Caseهای برنامه کاتالوگ با CQRS و MediatR Introduction - Catalog Application Use Case Development with CQRS and MediatR

  • مرور سریع تحلیل Use Caseهای برنامه ماژول کاتالوگ Quick Remember Catalog Module Application Use Cases Analysis

  • توسعه ساختار پوشه‌بندی ماژول کاتالوگ برای CQRS Develop Catalog Module Folder Structure for CQRS

  • توسعه کلاس‌های DTO برای محصول در ماژول کاتالوگ Develop DTO Classes for Product in Catalog Module

  • توسعه CreateProductCommand و Handler آن در لایه Application کاتالوگ Develop Products CreateProductCommand and Handler in Catalog Modules Application

  • توسعه CreateProductCommandHandler با استفاده از CatalogDbContext در کاتالوگ Develop Products CreateProductCommandHandler using CatalogDbContext in Catalog

  • توسعه UpdateProductCommand و Handler آن با استفاده از CatalogDbContext Develop Products UpdateProductCommand and Handler using CatalogDbContext

  • توسعه DeleteProductCommand و Handler آن با استفاده از CatalogDbContext Develop Products DeleteProductCommand and Handler using CatalogDbContext

  • توسعه پرس‌وجوهای (Queries) محصول با CQRS و MediatR در ماژول کاتالوگ Develop Product Queries with CQRS and MediatR in Catalog Module

  • نگاشت با Mapster Mapping with Mapster

  • توسعه پرس‌وجوهای محصول با CQRS، MediatR و Mapster در ماژول کاتالوگ Develop Product Queries with CQRS and MediatR in Catalog Module with Mapster

  • توسعه پرس‌وجوی GetProductByCategory با CQRS و MediatR در ماژول کاتالوگ Develop GetProductByCategory Queries with CQRS and MediatR in Catalog Module

  • توسعه پرس‌وجوی GetProductById با CQRS و MediatR در ماژول کاتالوگ Develop GetProductById Queries with CQRS and MediatR in Catalog Module

  • توسعه هندلرهای رویداد دامین با MediatR INotificationHandler در کاتالوگ Develop Domain Event Handlers with MediatR INotificationHandler in Catalog

  • توسعه هندلرهای رویداد دامین با MediatR INotificationHandler - بخش دوم Develop Domain Event Handlers with MediatR INotificationHandler - Part 2

توسعه نقاط اتصال API کاتالوگ و ارائه Minimal API با Carter و REPR Develop Catalog API Endpoints Expose Minimal API Endpoints with Carter and REPR

  • مقدمه: توسعه نقاط اتصال API کاتالوگ و ارائه Minimal API Introduction - Develop Catalog API Endpoints Exposing Minimal API Endpoints

  • الگوی طراحی REPR و چرخه حیات درخواست CQRS MediatR REPR Design Pattern and CQRS MediatR Request Lifecycle

  • معرفی Minimal APIها و نصب کتابخانه Carter برای ارائه Minimal APIها Minimal APIs and Install Carter Library to Expose Minimal APIs

  • مرور سریع تحلیل نقاط اتصال (Endpoints) ماژول کاتالوگ Quick Remember Catalog Module Endpoints Analysis

  • توسعه نقطه اتصال POST برای CreateProduct با استفاده از Carter و ICarterModule Develop CreateProduct POST Endpoint with Carter Implements ICarterModule

  • توسعه نقطه اتصال POST برای CreateProduct با استفاده از Carter - بخش دوم Develop CreateProduct POST Endpoint with Carter Implements ICarterModule - Part 2

  • توسعه نقطه اتصال UpdateProduct برای APIهای REST در ماژول کاتالوگ Developing UpdateProduct Endpoint for REST APIs in Catalog Module

  • توسعه نقطه اتصال DeleteProduct برای APIهای REST در ماژول کاتالوگ Developing DeleteProduct Endpoint for REST APIs in Catalog Module

  • توسعه نقطه اتصال GetProducts برای APIهای REST در ماژول کاتالوگ Developing GetProducts Endpoint for REST APIs in Catalog Module

  • توسعه نقطه اتصال GetProductById برای APIهای REST در ماژول کاتالوگ Developing GetProductById Endpoint for REST APIs in Catalog Module

  • توسعه نقطه اتصال GetProductByCategory برای APIهای REST در ماژول کاتالوگ Developing GetProductByCategory Endpoint for REST APIs in Catalog Module

  • ثبت کتابخانه‌های Carter در سرویس تزریق وابستگی و درخواست ASP.NET Register Carter Libraries into ASP.NET Dependency Injection Service and Request

  • ایجاد متد Extension برای ثبت Assemblyهای Carter Create Extension Method for Carter Assembly Registrations

  • ایجاد کالکشن Postman برای EShopModules Create Postman Collection for EShopModules

  • تست ماژول کاتالوگ: درخواست POST برای CreateProduct و دیباگ Minimal API Test Catalog Module - CreateProduct POST Request - Debug Carter Minimal API

  • تست نقطه اتصال UpdateProduct با CQRS و VSA در ماژول کاتالوگ Test UpdateProduct Endpoint with CQRS and VSA in Catalog Module

  • تست نقاط اتصال دریافت محصول با CQRS و VSA در ماژول کاتالوگ Test Get Product Endpoints with CQRS and VSA in Catalog Module

  • تست نقطه اتصال DeleteProduct با CQRS و VSA در ماژول کاتالوگ Test DeleteProduct Endpoint with CQRS and VSA in Catalog Module

توسعه دغدغه‌های عرضی (Cross cutting Concerns) برای کاتالوگ و سایر ماژول‌ها Develop Cross-cutting Concerns for Catalog and Each Module in EShop Modules

  • مقدمه: توسعه دغدغه‌های عرضی برای کاتالوگ و هر ماژول Introduction - Develop Cross-cutting Concerns for Catalog and Each Module

  • رفتارهای خط لوله (Pipeline Behaviors) در MediatR و کتابخانه Fluent Validation MediatR Pipeline Behaviors and Fluent Validation Library

  • افزودن دغدغه‌های عرضی به کتابخانه Shared برای استفاده در تمام ماژول‌ها Add Cross-cutting Concerns into Shared Class Library to Use in All Modules

  • اعمال اعتبارسنجی با AbstractValidator با استفاده از Fluent Validation Apply Validation with AbstractValidator using Fluent Validation Library

  • اعمال اعتبارسنجی با AbstractValidator با استفاده از Fluent Validation - بخش دوم Apply Validation with AbstractValidator using Fluent Validation Library - Part 2

  • رفتار خط لوله اعتبارسنجی (Validation Pipeline Behavior) با MediatR و Fluent Validation Validation Pipeline Behavior with MediatR using Fluent Validation Library

  • حذف اعتبارسنج دستی و تست رفتار خط لوله اعتبارسنجی با MediatR Remove Manual Validator and Test Validation Pipeline Behavior with MediatR

  • توسعه اعتبارسنج‌های دستورات CRUD با Fluent Validation Develop CRUD Command Validators with Fluent Validation

  • مدیریت سراسری استثناها (Exceptions) در ASP.NET Core با app.UseExceptionHandler Global Handling Exceptions in ASP.NET Core with app.UseExceptionHandler

  • روش عمومی و مشترک مدیریت استثناها در ASP.NET Core با app.UseExceptionHandler Shared Handle Exceptions Generic Way in ASP.NET Core with app.UseExceptionHandler

  • مدیریت سراسری استثناها با اینترفیس IExceptionHandler در ASP.NET Core Global Exception Handling with IExceptionHandler Interface in ASP.NET Core

  • ثبت مدیریت استثنای سفارشی در ASP.NET با متد AddExceptionHandler Register Custom Exception Handling into ASP.NET with AddExceptionHandler Method

  • رفتار لاگ‌گذاری (Logging Behavior) در خط لوله MediatR برای دغدغه‌های عرضی Logging Behavior in MediatR Pipeline for Cross-cutting Concerns

  • تست رفتار لاگ‌گذاری برای تمام درخواست‌های MediatR در ماژول کاتالوگ Test Logging Behavior for All MediatR Requests on Catalog Module

  • لاگ‌گذاری ساختاریافته با استفاده از Serilog در Minimal APIهای .NET 8.0 Structured Logging Using Serilog in .NET 8.0 Minimal APIs

  • استفاده از Serilog WriteTo Seq برای لاگ‌گذاری ساختاریافته در .NET Serilog WriteTo Seq for Structured Logging in .NET

  • توسعه کلاس Pagination برای پرس‌وجوی GetProducts با CQRS و MediatR Develop Pagination Class for Query GetProducts using CQRS and MediatR

  • توسعه پرس‌وجوی GetProducts با اعمال Pagination با CQRS و MediatR Develop GetProducts Query Apply Pagination using CQRS and MediatR

توسعه ماژول سبد خرید با معماری برش عمودی و CQRS Develop Basket Module with Vertical Slice Architecture and CQRS

  • مقدمه: توسعه ماژول سبد خرید با معماری برش عمودی و CQRS Introduction - Develop Basket Module with Vertical Slice Architecture and CQRS

  • تحلیل دامین ماژول سبد خرید: مدل‌ها، Use Caseها، APIهای REST و دیتابیس‌ها Domain Analysis of Basket Module: Models, UCs, Rest APIs, Databases

  • تحلیل فنی ماژول سبد خرید: معماری‌ها، الگوها، کتابخانه‌ها و پوشه‌ها Technical Analysis of Basket Module: Architectures, Patterns, Libraries, Folders

  • توسعه مدل‌های موجودیت دامین ShoppingCart در موجودیت‌های دامین سبد خرید Develop ShoppingCart Domain Entity Models in Basket Domain Entities

  • توسعه مدل موجودیت دامین غنی DDD برای موجودیت‌های ShoppingCart Develop DDD Rich-domain Model Entity for ShoppingCart Entities

توسعه زیرساخت داده‌های سبد خرید با EF Core Code First و PostgreSQL Develop Basket Data-Infrastructure with EF Core Code First and PostgreSQL

  • مقدمه: توسعه زیرساخت داده‌های سبد خرید با EF Core Code First Introduction - Develop Basket Data-Infrastructure with EF Core Code First

  • مراحل توسعه زیرساخت EF Core برای ماژول سبد خرید Steps of Infrastructure EF Core Developments for Basket Module

  • توسعه شیء DbContext در EF Core برای ذخیره موجودیت‌ها در زیرساخت سبد خرید Develop EF Core DbContext Object for Storing Entities in Basket Infrastructure

  • نگاشت اشیاء DDD به موجودیت‌های EF و توسعه پیکربندی‌های موجودیت EF Core Mapping DDD Objects to EF Entities - Develop EF Core Entity Configurations

  • روابط EF Core 8 و نگاشت ValueObject در DDD با ComplexType و Property EF Core 8 Relations and DDD ValueObject Mapping with ComplexType and Property

  • توسعه پیکربندی‌های رابطه‌ی موجودیت SC و SC Items Develop SC and SC Items Relations Entity Configurations

  • رشته اتصال SQL Server در فایل appsettings.json EF Core SQL Server Connection String in appsettings.json file

  • ثبت DbContext در ابزار تزریق وابستگی ASP.NET برای PostgreSQL Register EF Core DbContext in ASP.NET Dependency Injection Tool for PostgreSQL

  • ایجاد میگریشن‌های EF Core برای BasketDbContext در زیرساخت سبد خرید Create EF Core Migrations for BasketDbContext in Basket Infrastructure

  • اجرای Docker Compose در ویژوال استودیو برای راه‌اندازی PostgreSQL در داکر Run Docker-Compose on Visual Studio to Setup PostgreSQL on Docker

  • اعمال میگریشن‌های EF Core بر روی دیتابیس PostgreSQL با دستور Update Database Apply EF Core Migrations to PostgreSQL DB with Update-Database Command

  • میگریشن خودکار موجودیت‌های EF Core به PostgreSQL هنگام شروع برنامه با کدنویسی Auto Migrate EF Core Entities to PostgreSQL When Application Startup with Coding

  • تست میگریشن‌های خودکار با متد UseMigration در WebApplication Test Auto-Migrations with UseMigration Extension Method on WebApplication

توسعه Use Caseهای برنامه سبد خرید با CQRS و MediatR Develop Basket Application Use Case Development with CQRS and MediatR

  • مقدمه: توسعه Use Caseهای برنامه سبد خرید با CQRS و MediatR Introduction - Basket Application Use Case Development with CQRS and MediatR

  • توسعه ساختار پوشه‌بندی سبد خرید برای CQRS Develop Basket Folder Structure for CQRS

  • توسعه کلاس‌های DTO برای ShoppingCart در ماژول سبد خرید Develop DTO Classes for ShoppingCart in Basket Module

  • توسعه CreateBasketCommand و Handler آن در Use Caseهای برنامه سبد خرید Develop Basket CreateBasketCommand and Handler in Basket Application Use Cases

  • توسعه CreateBasketCommandHandler با استفاده از BasketDbContext در ماژول سبد خرید Develop Basket CreateBasketCommandHandler using BasketDbContext in Basket Module

  • توسعه DeleteBasketCommand و Handler آن با استفاده از BasketDbContext Develop Basket DeleteBasketCommand and Handler using BasketDbContext in Basket

  • توسعه پرس‌وجوهای سبد خرید با CQRS و MediatR در ماژول سبد خرید Develop Basket Queries with CQRS and MediatR in Basket Module

  • توسعه AddItemIntoBasketHandler با CQRS و MediatR Develop Basket AddItemIntoBasketHandler with CQRS and MediatR

  • توسعه RemoveItemFromBasketHandler با CQRS و MediatR Develop Basket RemoveItemFromBasketHandler with CQRS and MediatR

توسعه نقاط اتصال API سبد خرید و ارائه Minimal API با Carter و REPR Develop Basket API Endpoints Exposing Minimal API Endpoints with Carter and REPR

  • مقدمه: توسعه نقاط اتصال API سبد خرید و ارائه Minimal API Introduction - Develop Basket API Endpoints Exposing Minimal API Endpoints

  • توسعه نقطه اتصال POST برای CreateBasket با Carter و ICarterModule Develop CreateBasket POST Endpoint with Carter Implements ICarterModule

  • توسعه نقطه اتصال DeleteBasket با Carter و ICarterModule Develop DeleteBasket Endpoint with Carter Implements ICarterModule

  • توسعه نقطه اتصال GetBasket با Carter و ICarterModule برای Minimal APIها Develop GetBasket Endpoint with Carter Implements ICarterModule for Minimal APIs

  • توسعه نقطه اتصال AddItemIntoBasket با Carter و ICarterModule Develop AddItemIntoBasket Endpoint with Carter Implements ICarterModule

  • توسعه نقطه اتصال RemoveItemFromBasket با Carter و ICarterModule Develop RemoveItemFromBasket Endpoint with Carter Implements ICarterModule

  • ثبت کتابخانه‌های MediatR و Carter در سرویس تزریق وابستگی ASP.NET Register MediatR and Carter Libraries into ASP.NET Dependency Injection Service

  • ثبت کتابخانه‌های MediatR در سرویس تزریق وابستگی و درخواست ASP.NET Register MediatR Libraries into ASP.NET Dependency Injection Service and Request

  • توسعه متد Extension برای ثبت سفارشی MediatR با Assemblyها Develop MediatR Extension Method for Custom Registration With Assemblies

  • تست API سبد خرید: درخواست POST برای CreateBasket و دیباگ Minimal API Test Basket API - CreateBasket POST Request - Debug Carter Minimal API

  • تست نقاط اتصال دریافت سبد خرید با CQRS و VSA در ماژول سبد خرید Test Get Basket Endpoints with CQRS and VSA in Basket Module

  • تست نقطه اتصال DeleteBasket با CQRS و VSA در ماژول سبد خرید Test DeleteBasket Endpoint with CQRS and VSA in Basket Module

  • تست نقطه اتصال AddItemIntoBasket با CQRS و VSA در ماژول سبد خرید Test AddItemIntoBasket Endpoint with CQRS and VSA in Basket Module

  • تست نقطه اتصال RemoveItemFromBasket با CQRS و VSA در ماژول سبد خرید Test RemoveItemFromBasket Endpoint with CQRS and VSA in Basket Module

توسعه کشینگ توزیع‌شده با Redis در ماژول سبد خرید Develop Distributed Caching with Redis in Basket Module

  • مقدمه: توسعه کشینگ توزیع‌شده با Redis در ماژول سبد خرید Introduction - Develop Distributed Caching with Redis in Basket Module

  • توسعه کلاس BasketRepository با استفاده از شیء DbContext در EF Core Develop BasketRepository Class using EF Core DbContext Object

  • پیاده‌سازی کلاس IBasketRepository با استفاده از DbContext در EF Core Implement IBasketRepository Class using EF Core DbContext Object

  • ثبت IBasketRepository در DI ماژول سبد خرید Register IBasketRepository into DI of Basket Module

  • تزریق و استفاده از IBasketRepository در کلاس‌های Handler در ماژول سبد خرید Inject and Use IBasketRepository into Handler Classes in Basket Module

  • تزریق و استفاده از IBasketRepository در هندلرهای AddItem و RemoveItem Inject and Use IBasketRepository into AddItem and RemoveItem Handler Classes

  • تست سریع نقطه اتصال سبد خرید با CQRS و VSA در ماژول سبد خرید Quick Test Basket Endpoint with CQRS and VSA in Basket Module

  • الگوی Cache aside و ابطال کش (Cache Invalidation) Cache-aside Pattern and Cache Invalidation

  • الگوی Proxy، الگوی Decorator و کتابخانه Scrutor Proxy Pattern, Decorator Pattern, and Scrutor Library

  • توسعه CachedBasketRepository با الگوی Proxy، Decorator و Scrutor Develop CachedBasketRepository with Proxy Pattern, Decorator Pattern, and Scrutor

  • توسعه CachedBasketRepository با الگوی Proxy و Decorator - بخش دوم Develop CachedBasketRepository with Proxy Pattern, Decorator Pattern - Part 2

  • توسعه CachedBasketRepository با الگوی Proxy و Decorator - بخش سوم Develop CachedBasketRepository with Proxy Pattern, Decorator Pattern - Part 3

  • ثبت CachedBasketRepository دکور شده و StackExchangeRedis با Scrutor Register Decorated CachedBasketRepository and StackExchangeRedis with Scrutor

  • ثبت StackExchangeRedis در DI مشترک در Program.cs پروژه API Register StackExchangeRedis into Common DI in API Project Program.cs

  • راه‌اندازی Redis به عنوان کش توزیع‌شده با استفاده از فایل Docker Compose Setup Redis as a Distributed Cache using Docker-compose File for Multi-container

  • اجرای Docker Compose در ویژوال استودیو برای راه‌اندازی Redis در داکر Run Docker-Compose on Visual Studio to Setup Redis Distributed Cache on Docker

  • اتصال به کش Redis از ماژول محلی سبد خرید و ارسال درخواست GET برای کش Connect Redis Cache from Local Basket Module and Send GET Request Basket Cache

  • توسعه JsonConverter سفارشی برای ShoppingCart و آیتم‌ها هنگام خواندن از Redis Develop Custom JsonConverter for ShoppingCart and Items When Reading to Redis

  • توسعه JsonConverter سفارشی برای ShoppingCart و آیتم‌ها - بخش دوم Develop Custom JsonConverter for ShoppingCart and Items - Part 2

  • استفاده از JsonSerializerOptions سفارشی با JsonConverter برای ShoppingCart و آیتم‌ها Use Custom JsonSerializerOptions with JsonConverter for ShoppingCart and Items

  • تست سریع نقطه اتصال سبد خرید با CachedBasket Repository و JsonConverter سفارشی Quick Test Basket Endpoint with CachedBasket Repository and Custom JsonConverter

ارتباطات همگام بین ماژول‌ها با فراخوانی متدهای درون-پروسه (Public APIs) Sync Communications Between Modules with In-Process Method Calls (Public APIs)

  • مقدمه: ارتباطات همگام بین ماژول‌ها با فراخوانی متدهای درون-پروسه Introduction - Sync Communications Between Modules with In-Process Method Calls

  • نحوه مدیریت ارتباطات بین ماژول‌ها در معماری مونو لیت ماژولار How Modular Monolithic Architecture Handles Communications Between Modules

  • Use Caseهای همگام ماژول سبد خرید: ارتباط افزودن آیتم به سبد خرید Basket Module Synchronous Use Cases - Adding an Item to the Basket Communication

  • بررسی کلاس AddItemIntoBasketHandler: دریافت قیمت محصول از ماژول کاتالوگ Examine AddItemIntoBasketHandler Class: Get Product Price from Catalog Module

  • ارتباط همگام بین ماژول‌ها با استفاده از کتابخانه‌های کلاس Contracts Sync Communication Between Modules Using Contracts Class Libraries

  • مرحله ۱: ایجاد کتابخانه کلاس Catalog.Contracts Step 1: Create Catalog.Contracts Class Library

  • مرحله ۲: انتقال متدهای Query یا Command مربوط به MediatR به Catalog.Contracts Step 2: Move Exposing MediatR Method Query or Commands into Catalog.Contracts

  • جداسازی عملیات مشترک مربوط به قراردادهای CQRS در کتابخانه Shared.Contracts Splitting CQRS Contract-Related Common Operations into Shared.Contracts Class Library

  • مرحله ۳: اصلاح ماژول کاتالوگ برای دریافت رفرنس از کتابخانه Catalog.Contracts Step 3: Modify Catalog Module Getting Reference from Catalog.Contracts Class Library

  • مرحله ۴: دریافت رفرنس از کتابخانه Catalog.Contracts توسط ماژول سبد خرید Step 4: Basket Get Reference from Catalog.Contracts Class Library

  • مرحله ۶: دریافت مقادیر موجودیت محصول در AddItemIntoBasketHandler و تنظیم قیمت Step 6: Get Product Entity Values into AddItemIntoBasketHandler and Set Price

  • تست فراخوانی همگام AddItemIntoBasket سبد خرید به ماژول کاتالوگ برای دریافت داده‌ها Test Basket AddItemIntoBasket Sync Call to Catalog Module to Get Product Data

  • مرحله ۷: مهاجرت به میکروسرویس‌ها: تکامل ارتباطات همگام قراردادها Step 7: Migrating Microservices: Evolving Contracts Sync Communication

ارتباطات ناهمگام بین ماژول‌ها با RabbitMQ و MassTransit برای به‌روزرسانی قیمت Async Communications Between Modules with RabbitMQ & MassTransit for UpdatePrice

  • مقدمه: ارتباطات ناهمگام بین ماژول‌ها با RabbitMQ و MassTransit Introduction - Async Communications Between Modules with RabbitMQ & MassTransit

  • نحوه مدیریت ارتباطات ناهمگام بین ماژول‌ها در معماری مونو لیت ماژولار How Modular Monolithic Architecture Handles Async Communications Between Modules

  • الگوی پیام‌رسانی Fan Out Publish/Subscribe Fan-Out Publish/Subscribe Messaging Pattern

  • یادآوری سریع: رویدادهای دامین در مقابل رویدادهای یکپارچه‌ساز - دامین منجر به رویداد یکپارچه‌ساز می‌شود Quick Remember: Domain vs Integration Events - Domain Leads to Integration Event

  • تحلیل دامین ارتباط ناهمگام بین ماژول‌های کاتالوگ و سبد خرید Domain Analysis of Async Communication Between Catalog and Basket Modules

  • تحلیل فنی ارتباط ناهمگام بین ماژول‌های کاتالوگ و سبد خرید Technical Analysis of Async Communication Between Catalog and Basket Modules

  • مراحل توسعه ارتباط ناهمگام بین ماژول‌های کاتالوگ و سبد خرید Steps of Developing Async Communication Between Catalog and Basket Modules

  • مرحله ۱: بررسی رویدادهای دامین و یکپارچه‌ساز ماژول کاتالوگ Step 1: Examine Catalog Module Domain and Integration Events

  • مرحله ۲: ایجاد کتابخانه کلاس Shared.Messaging Step 2: Create Shared.Messaging Class Library

  • توسعه رویداد ProductPriceChangedIntegration در کتابخانه Shared.Messaging Develop ProductPriceChangedIntegration Event in Shared.Messaging Class Library

  • توسعه متدهای Extension در MassTransit برای ثبت اتصال RabbitMQ در DI Develop MassTransit Extension Methods to Register RabbitMQ Connection into DI

  • توسعه متدهای Extension در MassTransit برای ثبت اتصال در DI کاتالوگ Develop MassTransit Extension Methods to Register Connection into DI of Catalog

  • افزودن رفرنس پروژه Shared.Messaging به ماژول‌های کاتالوگ و سبد خرید Add Project Reference to Shared.Messaging in Catalog and Basket Modules

  • ثبت پکیج‌های MassTransit در DI پروژه Bootstrapper API در فایل Program.cs Register MassTransit Packages into Bootstrapper API DI in Program.cs File

  • رویداد ProductPriceChanged: چگونه رویداد دامین منجر به رویداد یکپارچه‌ساز می‌شود ProductPriceChanged Integration Event: How Domain Leads to Integration Event

  • مرحله ۳: انتشار رویداد یکپارچه‌ساز UpdatePrice توسط کاتالوگ Step 3: Catalog Publish UpdatePrice Integration Event

  • مرحله ۴: اشتراک و مصرف رویداد ProductPriceChanged توسط سبد خرید Step 4: Basket Subscribe and Consume ProductPriceChanged Integration Event

  • توسعه قابلیت UpdateItemPriceInBasket در ماژول سبد خرید Develop UpdateItemPriceInBasket Feature in Basket Module

  • توسعه قابلیت UpdateItemPriceInBasket در ماژول سبد خرید - بخش دوم Develop UpdateItemPriceInBasket Feature in Basket Module - Part 2

  • فراخوانی UpdateItemPriceInBasketCommand در ProductPriceChangedIntegrationEventHandler Call UpdateItemPriceInBasketCommand in ProductPriceChangedIntegrationEventHandler

  • تست ProductPriceChangedIntegrationEvent با MassTransit در حافظه (In Memory) TEST - ProductPriceChangedIntegrationEvent with In-Memory MassTransit

  • RabbitMQ چیست و اجزای اصلی آن کدامند (Producer, Queue, Consumer)؟ What is RabbitMQ and Main Components of RabbitMQ (Producer, Queue, Consumer)

  • تغییر باس In Memory به بروکر پیام RabbitMQ در MassTransit Shifting In-Memory Bus to RabbitMQ Message Broker in MassTransit

  • توسعه متدهای Extension در MassTransit برای ثبت اتصال RabbitMQ در DI Develop MassTransit Extension Methods to Register RabbitMQ Connection into DI

  • راه‌اندازی RabbitMQ برای ارتباط ناهمگام با استفاده از فایل Docker Compose Setup RabbitMQ for Async Communication Using Docker-Compose File

  • اجرای Docker Compose در ویژوال استودیو برای راه‌اندازی RabbitMQ در داکر Run Docker-Compose on Visual Studio to Setup RabbitMQ on Docker

  • تست ProductPriceChangedIntegrationEvent با RabbitMQ MassTransit TEST - ProductPriceChangedIntegrationEvent with RabbitMQ MassTransit

توسعه ماژول هویت کاربر با احرازهویت Keycloak Develop User Identity Module with Keycloak Authentication

  • مقدمه: توسعه ماژول هویت کاربر با احرازهویت Keycloak Introduction - Develop User Identity Module with Keycloak Authentication

  • مدیریت هویت و دسترسی Keycloak Keycloak Identity and Access Management

  • مزایای اصلی استفاده از Keycloak Main Advantages of Using Keycloak

  • بهترین روش‌ها هنگام استفاده از Keycloak Best Practices When Using Keycloak

  • جریان‌های OAuth2 و OpenID Connect با Keycloak OAuth2 + OpenID Connect Flows with Keycloak

  • Keycloak به عنوان یک سرویس پشتیبان برای ماژول‌های مونو لیت ماژولار Keycloak as a Backing Service of Modular Monolith Modules

  • راه‌اندازی Keycloak در فایل Docker Compose برای تامین‌کننده هویت (Identity Provider) Setup Keycloak into Docker-Compose File for Identity Provider

  • اجرای Docker Compose در ویژوال استودیو برای راه‌اندازی Keycloak در داکر Run Docker-Compose on Visual Studio Setup Keycloak Identity Provider on Docker

  • راه‌اندازی دیتابیس هویت Keycloak به عنوان یک Schema در دیتابیس PostgreSQL Setup Keycloak User Identity Database as a PostgreSQL DB Identity Schema

  • اجرای Docker Compose برای تولید Schema هویت PostgreSQL برای Keycloak Run Docker-Compose for Keycloak PostgreSQL Identity Schema Generation

  • ایجاد Realm، کاربر و Client برای OpenID Connect با تامین‌کننده هویت Keycloak Create Realm, User and Client for OpenID Connect with Keycloak Identity Provider

  • ایمن‌سازی ماژول‌های EShop با Keycloak OpenID Connect در ASP.NET Secure EShop Modules with Keycloak OpenID Connect in ASP.NET

  • ایمن‌سازی و تست نقاط اتصال سبد خرید با یکپارچه‌سازی Keycloak Secure and Test Basket Endpoints with Keycloak Integration

  • دریافت توکن JwtBearer برای OpenID Connect با هویت Keycloak Get JwtBearer Token for OpenID Connect with Keycloak Identity

  • دریافت کاربر فعلی از توکن با ClaimsPrincipal در احرازهویت ASP.NET Get Current User from Token with ClaimsPrincipal in ASP.NET Authentication

  • تست ایجاد سبد خرید با کاربر فعلی از توکن با ClaimsPrincipal TEST - Create Basket with Current User from Token with ClaimsPrincipal

  • ایمن‌سازی نقاط اتصال سبد خرید با OpenID Connect با استفاده از Keycloak Secure Basket Endpoints with OpenID Connect Using Keycloak Identity Provider

ماژول سفارشات با معماری برش عمودی و CQRS Ordering Module with Vertical Slice Architecture and CQRS

  • مقدمه: ماژول سفارشات با معماری برش عمودی و CQRS Introduction - Ordering Module with Vertical Slice Architecture and CQRS

  • تحلیل دامین ماژول سفارشات: مدل‌ها، Use Caseها، APIهای REST و دیتابیس‌ها Domain Analysis of Ordering Module: Models, UCs, Rest APIs, Databases

  • تحلیل فنی ماژول سفارشات: معماری‌ها، الگوها و کتابخانه‌ها Technical Analysis of Ordering Module: Architectures, Patterns, Libraries

  • توسعه موجودیت‌های دامین سفارشات با الگوهای تاکتیکی DDD Develop Ordering Domain Entities with Tactical Domain-Driven Design Patterns

  • توسعه زیرساخت داده‌های سفارشات با EF Core Code First و PostgreSQL Develop Ordering Data-Infrastructure with EF Core Code First and PostgreSQL

  • توسعه لایه Ordering.Application با CQRS و MediatR Develop Ordering.Application Layer with CQRS and MediatR

  • توسعه نقاط اتصال API سفارشات و ارائه Minimal API با Carter Develop Ordering API Endpoints Exposing Minimal API Endpoints with Carter

الگوی Outbox برای پیام‌رسانی مطمئن میکروسرویس‌ها در Use Case تسویه سبد خرید Outbox Pattern for Reliable Microservices Messaging with BasketCheckout Use Case

  • مقدمه: الگوی Outbox برای پیام‌رسانی مطمئن میکروسرویس‌ها Introduction - Outbox Pattern for Reliable Microservices Messaging

  • تحلیل رویداد تسویه سبد خرید (Basket Checkout) بین ماژول‌های سبد خرید و سفارشات Analyze Basket Checkout Event Between Basket and Ordering Modules

  • توسعه رویداد BasketCheckout در کتابخانه کلاس Shared.Messaging Develop BasketCheckout Event in Shared.Messaging Class Library

  • یادآوری سریع تنظیمات ارتباط ناهمگام MassTransit RabbitMQ Quick Remember Async Communication MassTransit RabbitMQ Setup

  • توسعه پوشه قابلیت BasketCheckout برای ارائه نقطه اتصال POST و انتشار رویداد Develop BasketCheckout Feature Folder to Expose POST Endpoint and Publish Event

  • توسعه متد Handler تسویه سبد خرید برای انتشار رویداد در RabbitMQ از طریق MassTransit Develop Basket Checkout Handler Method to Publish Event to RabbitMQ via MassTransit

  • مشکل Dual write و الگوی Outbox Dual-write Problem and Outbox Pattern

  • توسعه الگوی Outbox برای پیام‌رسانی مطمئن میکروسرویس‌ها در BasketCheckout Develop Outbox Pattern for Reliable Microservices Messaging with BasketCheckout

  • مراحل ۱ و ۲: ایجاد موجودیت Outbox و اصلاح DbContext Step 1-2: Create the Outbox Entity and Modify the DbContext

  • مرحله ۳: به‌روزرسانی CheckoutBasketHandler با Outbox و مدیریت Transaction (Begin/Commit) Step 3: Update CheckoutBasketHandler with Outbox and Database Begin and Commit

  • مرحله ۴: ایجاد یک Background Service برای پردازش پیام‌های Outbox Step 4: Create a Background Service to Process Outbox Messages

  • اشتراک و مصرف رویداد BasketCheckout از RabbitMQ توسط ماژول سفارشات Ordering Module to Subscribe-Consume BasketCheckout Event from RabbitMQ

  • ثبت ماژول سفارشات در MassTransit برای ارتباطات رویداد-محور ناهمگام Register Ordering Module into MassTransit for Async Event-driven Communication

  • توسعه Integration Event Handler برای مصرف رویداد تسویه سبد خرید Develop Basket Checkout Event Consumer Integration Event Handler

  • تست Use Case تسویه سبد خرید: ارتباط ناهمگام مطمئن با الگوی Outbox - بخش اول TEST - Checkout Basket Use Case - Reliable Async Communication Outbox Pattern - Part 1

  • تست Use Case تسویه سبد خرید: ارتباط ناهمگام مطمئن با الگوی Outbox - بخش دوم TEST - Checkout Basket Use Case - Reliable Async Communication Outbox Pattern - Part 2

کانتینریزه کردن و ارکستراسیون برنامه ماژولار EShop در Docker Compose Containerize and Orchestrate EShop Modular App in Docker-Compose

  • مقدمه: کانتینریزه کردن و ارکستراسیون برنامه ماژولار EShop در Docker Compose Introduction - Containerize and Orchestrate EShop Modular App in Docker-Compose

  • استراتژی استقرار مونو لیت ماژولار EShop EShop Modular Monolith Deployment Strategy

  • افزودن پروژه ASP.NET API به فایل Docker Compose برای محیط چند-کانتینری Add ASP.NET API Project into Docker-Compose File for Multi-container Docker Environment

  • تنظیم متغیرهای محیطی پیکربندی پروژه API بر اساس appsettings Set Environment Variables of API Project Configurations According to appsettings

  • تست کلی: اجرای Docker Compose با پروژه API و سرویس‌های پشتیبان TEST ALL - Docker-Compose All with API Project and Backing Services

  • تست ماژول سبد خرید: اجرای Docker Compose با پروژه API TEST Basket Module - Docker-Compose All with API Project

  • تست CheckoutBasket با RabbitMQ و ماژول سفارشات در Docker Compose TEST CheckoutBasket with RabbitMQ and Ordering Module - Docker-Compose All with API

  • تست ماژول سفارشات: اجرای Docker Compose با پروژه API TEST Ordering Module - Docker-Compose All with API Project

  • برنامه‌های کلاینت: مصرف API ماژول‌ها در EShop Modules Client Apps - Consume API Module in EShop Modules

مهاجرت به میکروسرویس‌ها: تبدیل ماژول‌های EShop به میکروسرویس با الگوی Strangler Fig Migrating to Microservices: EShop Modules to Microservices with Strangler Fig

  • مهاجرت به میکروسرویس‌ها: چالش‌ها و ملاحظات Migrating to Microservices: Challenges and Considerations

  • الگوی Strangler Fig برای بازسازی مونو لیت به میکروسرویس‌ها Strangler Fig Pattern for Refactoring Monolith into Microservices

  • مراحل بازسازی مونو لیت به میکروسرویس‌ها Steps of Refactoring Monolith into Microservices

  • مرحله ۱: تجزیه ماژول‌های EShop به میکروسرویس‌ها با Bounded Contextهای DDD Step 1: Decompose EShop Modules to Microservices with DDD Bounded Contexts

  • مرحله ۲: اولویت‌بندی سرویس‌های ماژول‌ها برای مهاجرت Step 2: Prioritize Modules-Services for Migration

  • مرحله ۳: استخراج یک سرویس از مونو لیت Step 3: Extract a Service from a Monolith

  • مرحله ۴: مدیریت دیتابیس مونو لیتیک Step 4: Manage a Monolithic Database

  • مرحله ۵: طراحی و پیاده‌سازی ارتباطات بین-سرویسی (Interservice Communication) Step 5: Design and Implement Interservice Communication

  • مرحله ۶: ارتباط ناهمگام بین سرویس‌ها Step 6: Async Communication Between Services

  • مرحله ۷: تراکنش‌های توزیع شده و سازگاری داده‌ها (Data Consistency) Step 7: Distributed Transactions and Data Consistency

  • مرحله ۸: استقرار میکروسرویس‌ها پس از مونو لیت Step 8: Deployment of Microservices After Monolithic

  • میکروسرویس‌های .NET 8: DDD، CQRS، معماری Vertical/Clean - جمع‌بندی دوره .NET 8 Microservices: DDD, CQRS, Vertical/Clean Architecture - Course Summary

تشکر و جمع‌بندی Thanks

  • تشکر و پایان Thanks

نمایش نظرات

آموزش بوت‌کمپ جامع بک‌اند .NET 8 - معماری Modulith، VSA، DDD، CQRS و Outbox [ویدئویی]
جزییات دوره
24h 33m
324
Packtpub Packtpub
(آخرین آپدیت)
از 5
ندارد
دارد
دارد
Mehmet Ozkaya
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Mehmet Ozkaya Mehmet Ozkaya

معمار نرم افزار | میکروسرویس | AWS Community Builder